给定链表的头节点,旋转链表,将链表每个节点往右移动 k 个位置,原链表后 k 个位置的节点则依次移动到链表头。
即,例如链表 : 1->2->3->4->5 k=2 则返回链表 4->5->1->2->3
数据范围:链表中节点数满足 ,
class Solution: def rotateLinkedList(self , head: ListNode, k: int) -> ListNode: if head == None: return head rare = head length = 1 while rare.next != None: rare = rare.next length = length + 1 rare.next = head step = length - k % length while step > 1: head = head.next step = step - 1 p = head head = head.next p.next = None return head
class Solution: def rotateLinkedList(self , head: ListNode, k: int) -> ListNode: # write code here if not head: return None length = 0 temp = head while temp.next: length += 1 temp = temp.next temp.next = head k = k % (length+1) temp = head for _ in range(length-k): temp = temp.next head = temp.next temp.next = None return head